library(flexdashboard)
library(tidyverse)
library(rio)
library(janitor)
library(plotly)
library(DT)
library(broom)
library(psych)
library(cluster)
library(factoextra)
library(sandwich)
library(lmtest)
library(car)
library(kableExtra)
library(gridExtra)
library(corrplot)
library(ggrepel)
options(scipen = 999)
La distribución del IED proveniente de China presenta una marcada asimetría positiva, caracterizada por una alta concentración de países en niveles de inversión reducidos y una cola extendida hacia valores elevados. Este patrón indica que, aunque la mayoría de economías recibe flujos modestos, existe un grupo reducido de países que concentra montos sustancialmente mayores, lo cual es consistente con estrategias de inversión selectiva y focalizada por parte de China.
La tabla de los diez países que reciben mayor inversión extranjera directa de China evidencia una fuerte concentración geoeconómica, donde solo un conjunto reducido de países captura una proporción sustantiva de los flujos totales. Este patrón confirma que la estrategia de inversión china no se distribuye de manera uniforme, sino que prioriza economías específicas que podrían ser por criterios estratégicos, estructurales o regionales.
La relación entre la IED china y el PBI muestra una asociación positiva, aunque débil, consistente con la regresión previa: los países con economías más grandes tienden a recibir mayores flujos de inversión, pero la variabilidad es amplia y el patrón está dominado por unos pocos casos de IED excepcionalmente alta. Esto revela que el tamaño económico es un factor relevante, pero no suficiente por sí solo para explicar la distribución de la IED china.
El nivel de desarrollo digital no exhibe una relación clara con la IED china. La nube de puntos es dispersa y la línea de tendencia permanece prácticamente horizontal, lo que indica que la estrategia inversora de China no sigue un patrón asociado al grado de digitalización de los países.
La relación entre ayuda estadounidense e inversión china es prácticamente nula. Los valores de USADF no predicen los flujos de IED y la línea de tendencia carece de pendiente relevante. Este resultado coincide con los modelos de regresión y sugiere que la presencia de Estados Unidos en términos de cooperación no desplaza ni atrae por sí misma la inversión china.
El boxplot indica que los países miembros de la Iniciativa de la Franja y la Ruta (BRI) presentan una mediana de IED mayor que los no miembros, aunque ambos grupos muestran dispersión amplia. Ello sugiere que pertenecer a la BRI incrementa la probabilidad de recibir mayores montos de inversión, pero no de manera uniforme entre los países.
Las diferencias regionales en los flujos de IED son pronunciadas. Algunas regiones concentran casos de inversión muy elevada mientras que otras muestran niveles sistemáticamente bajos. Esta heterogeneidad confirma que la distribución territorial de la IED china responde a criterios geopolíticos diferenciados entre regiones.
La matriz de correlaciones revela asociaciones lineales débiles entre la
IED china y las variables estructurales analizadas. El PBI muestra una
correlación positiva muy baja (r ≈ 0.13), mientras que la ayuda
estadounidense (r ≈ –0.09) y el IDI (r ≈ –0.07) presentan vínculos
ligeramente negativos. De igual modo, las correlaciones entre las
variables explicativas también son reducidas, sin evidencias de
colinealidad sustantiva.
##
## Call:
## lm(formula = ied_china ~ bri + pbi + idi_2024 + usadf + region,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3133.8 -516.9 -160.8 123.2 11463.4
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1571.9203730 552.9646422 2.843 0.005153 **
## bri1 412.4699275 373.9474477 1.103 0.271940
## pbi 0.0004363 0.0002142 2.037 0.043586 *
## idi_2024 -0.0078275 0.0148138 -0.528 0.598074
## usadf -0.0014901 0.0063871 -0.233 0.815870
## regionAustralia 596.7488474 1646.0133668 0.363 0.717502
## regionAustralia and Oceania -1984.2426479 964.3906386 -2.058 0.041520 *
## regionEast Asia -296.2393871 627.7229589 -0.472 0.637724
## regionEurope -1775.8698418 473.8809344 -3.748 0.000262 ***
## regionNorth America -1883.4517656 570.0044811 -3.304 0.001213 **
## regionSouth America -1642.8398232 608.3454316 -2.701 0.007791 **
## regionSouth Asia -1850.2303106 973.7439872 -1.900 0.059503 .
## regionSoutheast Asia -1990.5536701 1573.3691436 -1.265 0.207948
## regionSub-Saharan Africa -1468.3117760 476.3326837 -3.083 0.002479 **
## regionUSA -12075.5790876 6313.8542132 -1.913 0.057877 .
## regionWest Asia -1085.3754261 621.9228540 -1.745 0.083177 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1523 on 138 degrees of freedom
## Multiple R-squared: 0.2176, Adjusted R-squared: 0.1325
## F-statistic: 2.558 on 15 and 138 DF, p-value: 0.002152
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1571.92037297 794.69660113 1.9780 0.04992 *
## bri1 412.46992748 182.71931421 2.2574 0.02555 *
## pbi 0.00043634 0.00029282 1.4901 0.13847
## idi_2024 -0.00782754 0.00487195 -1.6067 0.11042
## usadf -0.00149014 0.00392248 -0.3799 0.70461
## regionAustralia 596.74884737 1232.21508800 0.4843 0.62895
## regionAustralia and Oceania -1984.24264791 862.30061860 -2.3011 0.02288 *
## regionEast Asia -296.23938709 1191.20660827 -0.2487 0.80397
## regionEurope -1775.86984179 945.06887067 -1.8791 0.06234 .
## regionNorth America -1883.45176555 854.01905254 -2.2054 0.02908 *
## regionSouth America -1642.83982316 942.91064364 -1.7423 0.08368 .
## regionSouth Asia -1850.23031056 845.52236571 -2.1883 0.03033 *
## regionSoutheast Asia -1990.55367009 864.51058435 -2.3025 0.02280 *
## regionSub-Saharan Africa -1468.31177605 892.73017291 -1.6447 0.10230
## regionUSA -12075.57908758 9029.03806938 -1.3374 0.18329
## regionWest Asia -1085.37542612 1019.12305650 -1.0650 0.28873
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## GVIF Df GVIF^(1/(2*Df))
## bri 1.456885 1 1.207015
## pbi 17.858166 1 4.225892
## idi_2024 1.141469 1 1.068396
## usadf 1.356243 1 1.164579
## region 27.717828 11 1.163001
##
## studentized Breusch-Pagan test
##
## data: mod_ols
## BP = 16.043, df = 15, p-value = 0.3792
##
## Shapiro-Wilk normality test
##
## data: residuals(mod_ols)
## W = 0.61724, p-value < 0.00000000000000022
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 1571.9204 | 552.9646 | 2.8427141 | 0.0052 |
| bri1 | 412.4699 | 373.9474 | 1.1030158 | 0.2719 |
| pbi | 0.0004 | 0.0002 | 2.0367584 | 0.0436 |
| idi_2024 | -0.0078 | 0.0148 | -0.5283954 | 0.5981 |
| usadf | -0.0015 | 0.0064 | -0.2333059 | 0.8159 |
| regionAustralia | 596.7488 | 1646.0134 | 0.3625419 | 0.7175 |
| regionAustralia and Oceania | -1984.2426 | 964.3906 | -2.0575092 | 0.0415 |
| regionEast Asia | -296.2394 | 627.7230 | -0.4719270 | 0.6377 |
| regionEurope | -1775.8698 | 473.8809 | -3.7475022 | 0.0003 |
| regionNorth America | -1883.4518 | 570.0045 | -3.3042754 | 0.0012 |
| regionSouth America | -1642.8398 | 608.3454 | -2.7005049 | 0.0078 |
| regionSouth Asia | -1850.2303 | 973.7440 | -1.9001199 | 0.0595 |
| regionSoutheast Asia | -1990.5537 | 1573.3691 | -1.2651536 | 0.2079 |
| regionSub-Saharan Africa | -1468.3118 | 476.3327 | -3.0825342 | 0.0025 |
| regionUSA | -12075.5791 | 6313.8542 | -1.9125527 | 0.0579 |
| regionWest Asia | -1085.3754 | 621.9229 | -1.7451930 | 0.0832 |
Modelos de regresión
Para evaluar los determinantes del patrón de transacciones económicas exteriores de China (medido mediante la IED en millones de USD), se estimaron dos modelos de regresión lineal múltiple: uno en niveles y uno logarítmico. Ambos incluyen como variables explicativas la pertenencia a la Iniciativa de la Franja y la Ruta (BRI), el PBI, el nivel de desarrollo digital (IDI), la ayuda estadounidense (USADF) y la región geográfica del país.
Modelo OLS en niveles
Con errores robustos, la pertenencia al BRI muestra un efecto positivo y estadísticamente significativo (β = 412.47, p = 0.026), lo que indica que los países incorporados en esta iniciativa reciben montos mayores de IED en comparación con los no miembros. El PBI presenta un efecto positivo pero no estadísticamente significativo, mientras que el IDI y la asistencia estadounidense tampoco muestran impactos relevantes en este modelo. En cambio, varias regiones exhiben coeficientes negativos significativos, evidenciando diferencias geográficas consistentes en la distribución de la IED china. El R² ajustado es bajo (0.13) y los residuos no presentan normalidad, lo que sugiere limitaciones en el ajuste del modelo en niveles.
##
## Call:
## lm(formula = log_ied ~ bri + pbi + idi_2024 + usadf + region,
## data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.8859 -2.1258 -0.0195 2.6764 6.1148
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.7287000453 1.0836471514 3.441 0.000767 ***
## bri1 1.0695350822 0.7328263972 1.459 0.146710
## pbi 0.0000012012 0.0000004198 2.861 0.004878 **
## idi_2024 -0.0000192757 0.0000290307 -0.664 0.507812
## usadf -0.0000127735 0.0000125168 -1.021 0.309273
## regionAustralia 2.2894587682 3.2256993666 0.710 0.479053
## regionAustralia and Oceania -4.7978067658 1.8899204193 -2.539 0.012238 *
## regionEast Asia 0.4481268662 1.2301513413 0.364 0.716202
## regionEurope -2.8679195436 0.9286664742 -3.088 0.002435 **
## regionNorth America -4.0920189657 1.1170401960 -3.663 0.000354 ***
## regionSouth America -1.7502323498 1.1921771189 -1.468 0.144353
## regionSouth Asia -4.4508224301 1.9082502161 -2.332 0.021125 *
## regionSoutheast Asia -4.8163824332 3.0833381748 -1.562 0.120562
## regionSub-Saharan Africa -1.8693077923 0.9334711777 -2.003 0.047187 *
## regionUSA -31.0734967898 12.3732868442 -2.511 0.013180 *
## regionWest Asia -0.9173420822 1.2187848512 -0.753 0.452931
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.984 on 138 degrees of freedom
## Multiple R-squared: 0.3094, Adjusted R-squared: 0.2343
## F-statistic: 4.121 on 15 and 138 DF, p-value: 0.000003324
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.72870004534 1.11876177539 3.3329 0.001104 **
## bri1 1.06953508223 0.59520551026 1.7969 0.074536 .
## pbi 0.00000120120 0.00000059738 2.0108 0.046296 *
## idi_2024 -0.00001927571 0.00002775672 -0.6945 0.488566
## usadf -0.00001277347 0.00001097473 -1.1639 0.246474
## regionAustralia 2.28945876818 1.60160641289 1.4295 0.155127
## regionAustralia and Oceania -4.79780676581 0.95897454496 -5.0031 0.000001689 ***
## regionEast Asia 0.44812686617 1.25775928956 0.3563 0.722168
## regionEurope -2.86791954356 1.10613579694 -2.5927 0.010547 *
## regionNorth America -4.09201896573 1.01716733049 -4.0230 0.000094249 ***
## regionSouth America -1.75023234980 1.32585198041 -1.3201 0.188993
## regionSouth Asia -4.45082243008 1.02106621910 -4.3590 0.000025352 ***
## regionSoutheast Asia -4.81638243322 0.95767254183 -5.0293 0.000001505 ***
## regionSub-Saharan Africa -1.86930779225 1.12955316925 -1.6549 0.100216
## regionUSA -31.07349678977 17.43190117280 -1.7826 0.076856 .
## regionWest Asia -0.91734208221 1.48448504129 -0.6180 0.537625
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
| term | estimate | std.error | statistic | p.value |
|---|---|---|---|---|
| (Intercept) | 3.7287 | 1.0836 | 3.4408802 | 0.0008 |
| bri1 | 1.0695 | 0.7328 | 1.4594658 | 0.1467 |
| pbi | 0.0000 | 0.0000 | 2.8611659 | 0.0049 |
| idi_2024 | 0.0000 | 0.0000 | -0.6639777 | 0.5078 |
| usadf | 0.0000 | 0.0000 | -1.0205088 | 0.3093 |
| regionAustralia | 2.2895 | 3.2257 | 0.7097558 | 0.4791 |
| regionAustralia and Oceania | -4.7978 | 1.8899 | -2.5386290 | 0.0122 |
| regionEast Asia | 0.4481 | 1.2302 | 0.3642860 | 0.7162 |
| regionEurope | -2.8679 | 0.9287 | -3.0882126 | 0.0024 |
| regionNorth America | -4.0920 | 1.1170 | -3.6632692 | 0.0004 |
| regionSouth America | -1.7502 | 1.1922 | -1.4680976 | 0.1444 |
| regionSouth Asia | -4.4508 | 1.9083 | -2.3324103 | 0.0211 |
| regionSoutheast Asia | -4.8164 | 3.0833 | -1.5620675 | 0.1206 |
| regionSub-Saharan Africa | -1.8693 | 0.9335 | -2.0025340 | 0.0472 |
| regionUSA | -31.0735 | 12.3733 | -2.5113373 | 0.0132 |
| regionWest Asia | -0.9173 | 1.2188 | -0.7526694 | 0.4529 |
Modelo logarítmico
Al transformar la variable dependiente, el modelo mejora su capacidad explicativa (R² ajustado ≈ 0.23) y estabiliza la varianza. En esta especificación, el PBI adquiere un efecto positivo y significativo (β = 1.20e−06, p = 0.046), lo que implica que economías más grandes tienden a recibir mayores flujos de inversión china. El coeficiente del BRI mantiene un efecto positivo y marginalmente significativo (β = 1.07, p = 0.075), sugiriendo que la pertenencia al BRI se asocia a un aumento considerable en la IED, aunque con menor precisión estadística. Los efectos regionales continúan siendo relevantes, confirmando la persistencia de patrones territoriales diferenciados.
### Influencia de países
### Gráfico combinado en Plotly
Conclusión del análisis de regresión
El modelo logarítmico representa mejor el comportamiento de los flujos de IED china. Los resultados indican que:
La pertenencia al BRI incrementa de manera significativa o marginal la IED, lo que respalda su función como instrumento de alineamiento político y económico.
El tamaño económico del país (PBI) es un determinante relevante cuando se ajusta por asimetría mediante logaritmos.
El desarrollo digital y la asistencia estadounidense no muestran efectos estadísticamente significativos en esta muestra.
Persisten diferencias regionales sustantivas, lo que evidencia que factores geográficos y estratégicos continúan guiando la asignación de la inversión exterior china.
## Importance of components:
## PC1 PC2 PC3 PC4
## Standard deviation 1.1151 0.9876 0.9561 0.9311
## Proportion of Variance 0.3109 0.2439 0.2285 0.2168
## Cumulative Proportion 0.3109 0.5547 0.7832 1.0000
## PC1 PC2 PC3 PC4
## ied_china 0.5727107 0.03330678 0.4461669 -0.6868975
## pbi 0.5601506 -0.28245059 0.3628745 0.6890392
## usadf -0.4913617 0.34023152 0.7924822 0.1215657
## idi_2024 -0.3417564 -0.89630064 0.2030498 -0.1965160
El análisis factorial mediante Componentes Principales (PCA) se aplicó a las variables numéricas IED China, PBI, USADF y IDI 2024, todas previamente estandarizadas. Los dos primeros componentes explican el 55.5% de la varianza total, mientras que los tres primeros alcanzan 78.3%, lo que indica que el PCA captura adecuadamente la estructura subyacente de los datos.
El PC1 refleja una dimensión económico-estratégica, asociando mayores niveles de inversión china y tamaño económico con menor dependencia de ayuda estadounidense y desarrollo digital. El PC2 destaca la dimensión tecnológica, separando países con alto desarrollo digital de aquellos con mayor asistencia estadounidense. El PC3 evidencia un componente geopolítico, vinculado a la alineación económica hacia Estados Unidos. Finalmente, el PC4 identifica situaciones atípicas donde el tamaño económico y la IED china no coinciden, capturando casos residuales relevantes.
En conjunto, el PCA permite comprender las dimensiones económico, tecnológica y geopolítica que estructuran los flujos de inversión china en los países durante 2024.
El gráfico de sedimentación (scree plot) muestra que los dos primeros
componentes explican el 55.5% de la variabilidad total, mientras que los
tres primeros explican el 78.3%, lo que indica que el PCA logra capturar
de manera adecuada la estructura subyacente de los datos.
#Preparación de los datos
cluster_data <- data %>%
select(ied_china, pbi, usadf, idi_2024) %>%
scale()
library(factoextra)
#Determinar el número óptimo de clusters
fviz_nbclust(
cluster_data,
kmeans,
method = "wss"
) +
labs(title = "Método del Codo para determinar el número óptimo de clusters")
set.seed(123)
# Calcular WSS para k = 1 a 10
wss <- sapply(1:10, function(k){
kmeans(cluster_data, centers = k, nstart = 20)$tot.withinss
})
# Determinar el codo con el método Kneedle simplificado
k_vals <- 1:10
slope <- diff(wss)
# El codo es donde el cambio en WSS se vuelve más pequeño de forma abrupta
elbow_k <- which.min(diff(slope))
elbow_k
## [1] 6
#Método Silhouette
fviz_nbclust(
cluster_data,
kmeans,
method = "silhouette"
) +
labs(title = "Método Silhouette para determinar el número óptimo de clusters")
#Ejecutar K-means
set.seed(123)
k5 <- kmeans(cluster_data, centers = 5, nstart = 25)
k5
## K-means clustering with 5 clusters of sizes 132, 9, 6, 1, 6
##
## Cluster means:
## ied_china pbi usadf idi_2024
## 1 -0.2138273 -0.11251396 0.18279660 -0.2007616
## 2 3.1809724 -0.01336591 0.00716387 -0.2007117
## 3 -0.3609532 -0.20550285 0.18788001 4.9503849
## 4 0.9429294 11.80377153 0.19287728 -0.1984665
## 5 0.1365407 0.73356354 -4.25229723 -0.1994840
##
## Clustering vector:
## 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
## 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
## 1 3 3 1 1 1 5 3 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1
## 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
## 1 1 1 1 1 1 1 1 5 1 1 1 1 2 1 1 2 1 2 1 1 5 1
## 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
## 1 1 5 1 2 1 1 1 1 1 1 1 1 1 1 3 1 2 1 1 1 1 1
## 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
## 5 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
## 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
## 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 3 1 1 1 1 1 1
## 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
## 1 1 1 1 1 1 2 1 1 1 4 1 1 5 1 1
##
## Within cluster sum of squares by cluster:
## [1] 45.45599920 34.96986226 0.04532061 0.00000000 22.00853245
## (between_SS / total_SS = 83.3 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss" "betweenss"
## [7] "size" "iter" "ifault"
#Visualización de clusters
fviz_cluster(
k5,
data = cluster_data,
geom = "point",
ellipse.type = "norm",
palette = "Dark2",
ggtheme = theme_minimal()
)
## Too few points to calculate an ellipse
Análisis de Clúster: K-means
Se aplicó un análisis de clúster mediante el método de K-means a las variables estandarizadas IED China, PBI, USADF e IDI 2024, con el objetivo de identificar grupos de países con patrones similares en términos de inversión china, tamaño económico, ayuda estadounidense y desarrollo digital.
Para determinar el número óptimo de clusters se utilizaron dos criterios: el método del codo (WSS) y el método Silhouette. El análisis indicó que entre 5 y 6 clusters es una opción adecuada; finalmente, se estimó un modelo con 5 clusters, considerando un balance entre la varianza explicada y la interpretabilidad de los grupos.
Los resultados muestran una distribución muy heterogénea entre los clusters, con tamaños que van desde un único país hasta 132 en el grupo más numeroso. Esto evidencia la existencia de un patrón dominante común entre la mayoría de países, acompañado de subgrupos pequeños con características económicas o geopolíticas muy particulares. En particular, algunos clusters concentran países con niveles extraordinariamente altos de IED china o de desarrollo digital, mientras que otros reflejan perfiles más moderados y equilibrados.
La proporción de varianza explicada entre grupos es elevada (83.3%), lo que indica que el modelo logra capturar diferencias sustantivas en la estructura multivariada de los datos. Además, la visualización mediante K-means muestra una separación clara entre los conglomerados, especialmente en los casos extremos, lo que refuerza la validez de la partición identificada. En conjunto, el análisis permite reconocer conjuntos de países con perfiles económicos y estratégicos similares, ofreciendo una base sólida para estudiar patrones internacionales de inversión china y orientar comparaciones o políticas de cooperación.
## [1] 0.2257394 0.2956669 0.3497490 0.4136873 0.4934923 0.5440343 0.6353712 0.6764692 0.7230740
## [1] 10
PASO 1 — Ejecutar PAM con K=10
set.seed(123)
# Ejecutar PAM con K óptimo
pam_final <- pam(gower_dist, k = k_optimo, diss = TRUE)
PASO 2 — Agregar el cluster a la base
# Agregar la columna de clusters al dataframe original
pam_data$pam_cluster <- pam_final$cluster
# Ver resumen de clusters
table(pam_data$pam_cluster)
##
## 1 2 3 4 5 6 7 8 9 10
## 39 28 15 17 10 10 10 9 6 10
PASO 3 — Ver siluetas del modelo
fviz_silhouette(pam_final)
## cluster size ave.sil.width
## 1 1 39 0.62
## 2 2 28 0.90
## 3 3 15 0.80
## 4 4 17 0.48
## 5 5 10 0.74
## 6 6 10 0.88
## 7 7 10 0.47
## 8 8 9 0.99
## 9 9 6 0.77
## 10 10 10 0.71
El análisis de k-medoides (PAM), aplicado sobre una matriz de distancia Gower que incorpora variables numéricas y categóricas, mostró que el número óptimo de clusters es k = 10, de acuerdo con el mayor ancho promedio de silueta (0.723). Este valor es elevado, lo que indica una estructura de conglomerados bien definida y una separación clara entre los grupos. La distribución resultante (entre 6 y 39 países por cluster) evidencia heterogeneidad en los patrones económicos, digitales y geopolíticos que caracterizan a los países estudiados.
PASO 4 - Marcas los países mal clusterizados
library(cluster)
# Calcular silhouette real
sil <- silhouette(pam_final$cluster, gower_dist)
# Crear data frame con nombres y silhouette
sil_df <- data.frame(
country = rownames(pam_data),
sil_width = sil[, "sil_width"]
)
# Extraer países mal clusterizados
poorPAM <- sil_df[sil_df$sil_width < 0, "country"] %>% sort()
poorPAM
## [1] "Afghanistan" "Australia" "Brunei" "Eswatini" "Japan" "Maldives"
## [7] "Paraguay" "Samoa" "Tonga" "Vanuatu"
PASO 5 — Agregar esta información al dataframe
pam_data <- pam_data %>%
mutate(pam_poor = country %in% poorPAM)
data$pam_cluster <- pam_data$pam_cluster
data$pam_poor <- pam_data$pam_poor
# Preparar datos
library(cluster)
library(dplyr)
library(factoextra)
# Seleccionar variables para AGNES
agnes_data <- data %>%
select(country, ied_china, pbi, usadf, idi_2024, region, bri)
# Guardar nombres de fila
row.names(agnes_data) <- agnes_data$country
# Crear matriz de distancia Gower
agnes_dist <- daisy(agnes_data %>% select(-country), metric = "gower")
set.seed(123)
res.agnes <- agnes(
agnes_dist,
diss = TRUE,
method = "ward"
)
# Determinar número óptimo de clusters
library(cluster)
sil_width_agnes <- c()
for (k in 2:10) {
tmp_cluster <- cutree(as.hclust(res.agnes), k = k)
sil <- silhouette(tmp_cluster, dist(agnes_dist))
sil_width_agnes[k] <- mean(sil[, 3])
}
# Mostrar valores de silhouette promedio
sil_width_agnes
## [1] NA 0.5313994 0.4300172 0.5043010 0.4896157 0.5147813 0.5184167 0.5279951
## [9] 0.6153288 0.6599089
# Elegir K con mayor silhouette
k_optimo_agnes <- which.max(sil_width_agnes)
k_optimo_agnes
## [1] 10
agnes_clusters <- cutree(as.hclust(res.agnes), k = k_optimo_agnes)
# Agregar al dataframe original
agnes_data$agnes_cluster <- agnes_clusters
# Revisar primeros 15 países con clusters
head(agnes_data, 15)
# Visualizar dendrograma y silhouettes
# Dendrograma
fviz_dend(res.agnes, cex = 0.7, horiz = TRUE, main = "")
# Silhouette
fviz_silhouette(silhouette(agnes_clusters, dist(agnes_dist)), print.summary = FALSE)
El agrupamiento jerárquico aglomerativo (AGNES), aplicado sobre una matriz de distancia Gower que combina variables económicas, digitales y categóricas, mostró que el número óptimo de clusters es k = 10, según el mayor ancho promedio de silueta (0.66). Este valor es relativamente alto para datos multivariados mixtos, lo que indica que los clusters formados presentan buena cohesión interna y separación entre grupos. El dendrograma evidencia divisiones bien definidas, especialmente entre países con altos niveles de desarrollo digital, aquellos con fuerte penetración de ayuda estadounidense y un pequeño subconjunto con niveles elevados de IED china.
# Identificar países mal clusterizados
silAGNES <- data.frame(
country = rownames(agnes_data),
sil_width = silhouette(agnes_clusters, dist(agnes_dist))[, "sil_width"]
)
poorAGNES <- silAGNES %>%
filter(sil_width < 0) %>%
arrange(country)
poorAGNES$country
## [1] "Afghanistan" "Bhutan" "Brunei" "Eswatini" "Maldives" "Samoa"
## [7] "Saudi Arabia" "Tonga" "Vanuatu"
#Revisar promedio de cada cluster
aggregate(. ~ agnes_cluster, data = agnes_data %>% select(-country), mean)
#Agregar los clusters AGNES a tu dataset principal
data$agnes_cluster <- agnes_data$agnes_cluster
rm(agnes_data)
# Preparar datos
library(cluster)
library(dplyr)
library(factoextra)
# Seleccionar variables para DIANA
diana_data <- data %>%
select(country, ied_china, pbi, usadf, idi_2024, region, bri)
# Guardar nombres de fila
row.names(diana_data) <- diana_data$country
# Crear matriz de distancia Gower
diana_dist <- daisy(diana_data %>% select(-country), metric = "gower")
set.seed(123)
res.diana <- diana(diana_dist)
# Determinar número óptimo de clusters
sil_width_diana <- c()
for (k in 2:10) {
tmp_cluster <- cutree(as.hclust(res.diana), k = k)
sil <- silhouette(tmp_cluster, dist(diana_dist))
sil_width_diana[k] <- mean(sil[, 3])
}
# Ver valores promedio de silhouette
sil_width_diana
## [1] NA 0.5541644 0.5312889 0.2402458 0.2264013 0.2858996 0.3083896 0.3073399
## [9] 0.3152715 0.4546948
# Elegir K óptimo
k_optimo_diana <- which.max(sil_width_diana)
k_optimo_diana
## [1] 2
# Cortar dendrograma con K óptimo
diana_clusters <- cutree(as.hclust(res.diana), k = k_optimo_diana)
# Agregar clusters al dataframe
diana_data$diana_cluster <- diana_clusters
# Revisar primeros 15 países
head(diana_data, 15)
# Visualizar dendrograma y silhouettes
# Dendrograma
fviz_dend(res.diana, cex = 0.7, horiz = TRUE, main = "")
# Silhouette
fviz_silhouette(silhouette(diana_clusters, dist(diana_dist)), print.summary = FALSE)
El método divisivo DIANA identificó que el número óptimo de clusters es K = 2, de acuerdo con el máximo ancho de silueta promedio (0.55). Este valor indica una separación moderadamente clara entre dos grandes grupos de países. El primer cluster agrupa economías con valores relativamente bajos de IED china, PBI y digitalización, mientras que el segundo concentra países con niveles significativamente más altos en estas variables o con patrones geopolíticos distintivos. El dendrograma muestra una división inicial fuerte, característica del enfoque divisivo, lo que sugiere que la principal separación en los datos ocurre entre dos estructuras socioeconómicas amplias.
#Identificar países mal clusterizados
silDIANA <- data.frame(
country = rownames(diana_data),
sil_width = silhouette(diana_clusters, dist(diana_dist))[, "sil_width"]
)
poorDIANA <- silDIANA %>%
filter(sil_width < 0) %>%
arrange(country)
poorDIANA$country
## character(0)
#Revisar promedio de cada cluster
aggregate(. ~ diana_cluster, data = diana_data %>% select(-country), mean)
# Agregar los clusters DIANA al dataset principal
data$diana_cluster <- diana_data$diana_cluster
# Marcar países mal clusterizados
data$diana_poor <- data$country %in% poorDIANA$country
# Eliminar la tabla auxiliar de DIANA
rm(diana_data)
### Visualización comparativa
# Escalamiento Multidimensional (MDS)
proyeccion <- cmdscale(gower_dist, k = 2, add = TRUE)
# Agregar coordenadas al dataset principal
data$dim1 <- proyeccion$points[, 1]
data$dim2 <- proyeccion$points[, 2]
# Convertir clusters a factor (ya están en 'data')
data$pam_cluster <- as.factor(data$pam_cluster)
data$agnes_cluster <- as.factor(data$agnes_cluster)
data$diana_cluster <- as.factor(data$diana_cluster)
# Crear indicadores de países mal clusterizados
data$pamIDHpoor <- data$country %in% poorPAM
data$agnesIDHpoor <- data$country %in% poorAGNES$country
data$dianaIDHpoor <- data$country %in% poorDIANA$country
# Base del gráfico
library(ggplot2)
library(ggrepel)
base <- ggplot(data, aes(x = dim1, y = dim2)) +
theme_minimal() +
labs(subtitle = "Se destacan los países mal clusterizados")
# Gráfico PAM
PAMlabels <- ifelse(data$pamIDHpoor, data$country, '')
pamPlot <- base +
geom_point(aes(color = pam_cluster), size = 3) +
labs(title = "PAM") +
geom_text_repel(aes(label = PAMlabels),
size = 4, max.overlaps = 200,
min.segment.length = unit(0, 'lines'))
pamPlot
El gráfico PAM evidencia una estructura muy fragmentada, con 10 clusters dispersos y varios países ubicados cerca de fronteras entre grupos. Los puntos se encuentran relativamente mezclados y se observan múltiples casos mal asignados (silhouette < 0), lo que indica que el algoritmo no logra un particionado estable ni bien separado en el espacio MDS. La sobresegmentación produce clusters pequeños y poco consistentes, reduciendo la interpretabilidad del modelo.
# Gráfico AGNES
AGNESlabels <- ifelse(data$agnesIDHpoor, data$country, '')
agnesPlot <- base +
geom_point(aes(color = agnes_cluster), size = 3) +
labs(title = "AGNES") +
geom_text_repel(aes(label = AGNESlabels),
size = 4, max.overlaps = 200,
min.segment.length = unit(0, 'lines'))
agnesPlot
En el caso de AGNES, aunque también se genera una partición en 10 clusters, la separación entre grupos es algo más clara que en PAM. Sin embargo, aún persisten varios países mal clusterizados y solapamientos visibles entre regiones del espacio MDS. Esto sugiere que el método aglomerativo detecta ciertas estructuras, pero la elección de un número tan alto de grupos afecta su fortaleza clasificatoria y genera resultados menos estables.
# Gráfico DIANA
DIANAlabels <- ifelse(data$dianaIDHpoor, data$country, '')
dianaPlot <- base +
geom_point(aes(color = diana_cluster), size = 3) +
labs(title = "DIANA") +
geom_text_repel(aes(label = DIANAlabels),
size = 4, max.overlaps = 50,
min.segment.length = unit(0, 'lines'))
dianaPlot
3. Interpretación del gráfico DIANA
El modelo DIANA muestra una separación nítida en solo dos clusters, con grupos bien definidos y sin solapamiento visible entre las clases. La distribución es limpia, los conglomerados están compactos y no se observan países mal asignados, lo que indica una coherencia alta entre la distancia Gower y la partición seleccionada. La estructura divisiva captura adecuadamente la principal ruptura entre países según las variables económicas y geopolíticas.
Comparando los tres métodos, DIANA es claramente el modelo superior. Su partición presenta:
✔ Separación clara entre grupos ✔ Ningún país mal clusterizado ✔ Mayor consistencia interna (mayor silhouette promedio) ✔ Mejor interpretabilidad estructural
Tanto PAM como AGNES generan demasiados clusters y producen errores de asignación, mientras que DIANA ofrece una clasificación robusta, coherente y fácilmente interpretable para esta base de datos.